<?php
/**
 * Cart
 * Created by Veyron
 * motto:现在的拼搏 为了更好的明天
 * day:  2020/3/25
 * Time: 15:23
 */

namespace app\api\controller;

use app\common\lib\Show;
use app\common\business\Cart as CartBis;

class Cart extends AuthBase
{
    /**
     * 添加到购物车
     * @return \think\response\Json
     */
    public function add(){
        if(!$this->request->isPost()){
            return Show::error('非法访问');
        }
        $id  = input('param.id','0','intval');
        $num = input('param.num','0','intval');
        if(!$id || !$num){
            return Show::error('参数不合法');
        }
        $res = (new CartBis())->insertRedis($this->userId, $id, $num);
        if($res === FALSE){
            return Show::error();
        }
        return Show::success();
    }

    /**
     * 购物车列表
     * @return \think\response\Json
     */
    public function lists(){
        $ids = input('param.id','','trim');
        $res = (new CartBis())->lists($this->userId, $ids);

        if($res === FALSE){
            return Show::error();
        }

        return Show::success($res);
    }

    /**
     * 删除购物车
     * @return \think\response\Json
     */
    public function delete(){
        if(!$this->request->isPost()){
            return Show::error('非法访问');
        }
        $id  = input('param.id','0','intval');
        if(!$id){
            return Show::error('参数不合法');
        }
        $res = (new CartBis())->deleteRedis($this->userId,$id);

        if($res === FALSE){
            return Show::error();
        }
        return Show::success($res);
    }

    /**
     * 修改购物车数量
     * @return \think\response\Json
     */
    public function update(){
        if(!$this->request->isPost()){
            return Show::error('非法访问');
        }
        $id   = input('param.id','0','intval');
        $num  = input('param.num','0','intval');
        if(!$id || !$num){
            return Show::error('参数不合法');
        }
        $res = (new CartBis())->updateRedis($this->userId,$id,$num);

        if($res === FALSE){
            return Show::error();
        }
        return Show::success($res);
    }
}

